package com.itheima.api.user;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.vo.domain.AjaxResult;
import com.itheima.vo.domain.TableDataInfo;
import com.itheima.vo.dto.AdminRoleDto;
import com.itheima.vo.pojo.UmsAdmin;
import com.itheima.vo.pojo.UmsAdminLoginLog;
import com.itheima.vo.pojo.UmsRole;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 用户业务层接口
 */
public interface UmsAdminService extends IService<UmsAdmin> {

    /**
     * 校验登录是否成功并返回token的功能
     * @param umsAdmin 登录信息
     * @return  map集合
     */
     Map<String,Object> adminLogin(UmsAdmin umsAdmin, UmsAdminLoginLog loginLog);

    /**
     * 用户注册功能
     * @param umsAdmin 注册信息
     * @return 用户信息
     */
    UmsAdmin register(UmsAdmin umsAdmin);

    /**
     * 查询用户列表
     * @param keyword  模糊查询条件:用户名/昵称
     * @param pageNum  当前页码
     * @param pageSize  当前页条目数
     * @return  查询结果
     */
    TableDataInfo getList(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 修改用户密码
     * @param map 用户名,新旧密码
     */
    void updatePassword(Map<String, String> map);

    /**
     * 给用户分配角色
     * @param dto 封装用户id和角色ids
     * @return 提示信息
     */
    void updateAdminRole(AdminRoleDto dto);

    /**
     * 获取指定用户的角色
     * @param adminId 用户id
     * @return  角色集合
     */
    List<UmsRole> getAdminRoles(Long adminId);

    /**
     *获取当前登录用户信息
     * @param loginUser 当前登录用户
     * @return  用户角色,用户头像,用户菜单,用户名
     */
    Map<String, Object> getCurrentLoginAdmin(UmsAdmin loginUser);
}
